package com.nku.mason.masonframework.core;

import com.nku.mason.masonframework.core.tools.AopTool;
import com.nku.mason.masonframework.core.tools.BeanTool;
import com.nku.mason.masonframework.core.tools.ClassTool;
import com.nku.mason.masonframework.core.tools.ControllerHelper;
import com.nku.mason.masonframework.core.tools.IOCTool;
import com.nku.mason.masonframework.util.ClassUtil;
/**
 * 框架初始化工具，加载每个工具类，即运行每个Tool的static块
 * @author Mason
 * @date 2017年3月14日
 */
public final class BootLoader {
	
	private BootLoader(){
		//私有构造器，防止外部实例化
	}
	
	/**
	 * 初始化
	 */
	public static void init(){
		
		Class<?>[] classList = {
			ClassTool.class,
			BeanTool.class,
			AopTool.class,	//AopHelper需要在IOCHelper之前进行加载，因为AOPHelper会将代理对象也添加到BEAN_MAP中
			IOCTool.class,
			ControllerHelper.class
		};
		
		for(Class<?> cls:classList){
			ClassUtil.loadClass(cls.getName());
		}
	}
}
